using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;
using Hostal.Bussines.Entities;

namespace Hostal.Bussines.Repository.Mapping
{
    public class HuespedMap : EntityTypeConfiguration<Huesped>
    {
        public HuespedMap()
        {
            // Primary Key
            this.HasKey(t => t.IdHuesped);

            // Properties
            this.Property(t => t.Nombres)
                .IsRequired()
                .HasMaxLength(50);

            this.Property(t => t.Apellidos)
                .IsRequired()
                .HasMaxLength(50);

            this.Property(t => t.DNI)
                .IsRequired()
                .HasMaxLength(50);

            this.Property(t => t.Procedencia)
                .IsRequired()
                .HasMaxLength(50);

            this.Property(t => t.Direccion)
                .IsRequired()
                .HasMaxLength(50);

            this.Property(t => t.Celular)
                .IsRequired()
                .HasMaxLength(50);

            // Table & Column Mappings
            this.ToTable("Huesped");
            this.Property(t => t.IdHuesped).HasColumnName("IdHuesped");
            this.Property(t => t.Nombres).HasColumnName("Nombres");
            this.Property(t => t.Apellidos).HasColumnName("Apellidos");
            this.Property(t => t.DNI).HasColumnName("DNI");
            this.Property(t => t.Procedencia).HasColumnName("Procedencia");
            this.Property(t => t.Direccion).HasColumnName("Direccion");
            this.Property(t => t.Sexo).HasColumnName("Sexo");
            this.Property(t => t.Edad).HasColumnName("Edad");
            this.Property(t => t.Celular).HasColumnName("Celular");
            this.Property(t => t.FechaNacimiento).HasColumnName("FechaNacimiento");
        }
    }
}
